home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 4 / Amiga Tools 4.iso / tools / internet-tools / connect-line / cl / devkit / c / include / clutil.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-11-12  |  25.4 KB  |  699 lines

  1. /*
  2. ** "clutil.library" definitions
  3. **
  4. ** $VER: 62.0
  5. **
  6. */
  7.  
  8. #ifndef _CL_CLUTIL_H
  9. #define _CL_CLUTIL_H
  10.  
  11. #ifndef EXEC_TYPES_H
  12. #include <exec/types.h>
  13. #endif
  14.  
  15. #ifndef EXEC_MEMORY_H
  16. #include <exec/memory.h>
  17. #endif
  18.  
  19. #ifndef DOS_DOS_H
  20. #include <dos/dos.h>
  21. #endif
  22.  
  23. #ifndef _TIME_H
  24. #include <time.h>
  25. #endif
  26.  
  27. #ifndef _NO_PRAG
  28. /*
  29.  *  SAS/C pragmas
  30.  */
  31. #pragma libcall CLUtilBase CLU_ShowRequesterA 24 BA9804
  32. #pragma tagcall CLUtilBase CLU_ShowRequester 24 BA9804
  33. #pragma libcall CLUtilBase CLU_OpenLibrary 2A 0802
  34. #pragma libcall CLUtilBase CLU_OpenFileTimeout 30 10803
  35. #pragma libcall CLUtilBase CLU_DeleteDir 4E 801
  36. #pragma libcall CLUtilBase CLU_CopyFile 54 9802
  37. #pragma libcall CLUtilBase CLU_MoveFile 5A 9802
  38. #pragma libcall CLUtilBase CLU_CreateFuelGauge 60 93210806
  39. #pragma libcall CLUtilBase CLU_DeleteFuelGauge 66 801
  40. #pragma libcall CLUtilBase CLU_DrawFuelGauge 6C 10803
  41. #pragma libcall CLUtilBase CLU_SprintfA 72 A9803
  42. #pragma tagcall CLUtilBase CLU_Sprintf 72 A9803
  43. #pragma libcall CLUtilBase CLU_OpenLibraryCode 78 001
  44. #pragma libcall CLUtilBase CLU_CRC16 90 0802
  45. #pragma libcall CLUtilBase CLU_CRC32 96 0802
  46. #pragma libcall CLUtilBase CLU_rstrchr 9C 0802
  47. #pragma libcall CLUtilBase CLU_RefreshFuelGauge A2 801
  48. #pragma libcall CLUtilBase CLU_Get8Font A8 0
  49. #pragma libcall CLUtilBase CLU_Get8TextAttr AE 0
  50. #pragma libcall CLUtilBase CLU_CloseScreenSafe B4 801
  51. #pragma libcall CLUtilBase CLU_SetABPenDrMd BA 210804
  52. #pragma libcall CLUtilBase CLU_OpenFileReally C0 801
  53. #pragma libcall CLUtilBase CLU_clnl C6 801
  54. #pragma libcall CLUtilBase CLU_CD CC 801
  55. #pragma libcall CLUtilBase CLU_Examine D2 9802
  56. #pragma libcall CLUtilBase CLU_GetFileLen D8 801
  57. #pragma libcall CLUtilBase CLU_SetWaitPointer DE 801
  58. #pragma libcall CLUtilBase CLU_LockWindow E4 801
  59. #pragma libcall CLUtilBase CLU_UnlockWindow EA 801
  60. #pragma libcall CLUtilBase CLU_ELGetNumEntries F0 801
  61. #pragma libcall CLUtilBase CLU_ELGetEntryNum F6 9802
  62. #pragma libcall CLUtilBase CLU_ELGetEntry FC 0802
  63. #pragma libcall CLUtilBase CLU_DrawRLX 102 210804
  64. #pragma libcall CLUtilBase CLU_DrawRLY 108 210804
  65. #pragma libcall CLUtilBase CLU_strcpylw 10E 9802
  66. #pragma libcall CLUtilBase CLU_strcpyup 114 9802
  67. #pragma libcall CLUtilBase CLU_ObtainNamedSemaphore 11A 0802
  68. #pragma libcall CLUtilBase CLU_FreeNamedSemaphoreName 120 801
  69. #pragma libcall CLUtilBase CLU_FreeNamedSemaphore 126 801
  70. #pragma libcall CLUtilBase CLU_GetNameVal 12C 801
  71. #pragma libcall CLUtilBase CLU_GetSeqNum 132 0
  72. #pragma libcall CLUtilBase CLU_GetSeqNumInc 138 001
  73. #pragma libcall CLUtilBase CLU_MakeNumName 13E 821004
  74. #pragma libcall CLUtilBase CLU_iso2ibm 144 001
  75. #pragma libcall CLUtilBase CLU_ibm2iso 14A 001
  76. #pragma libcall CLUtilBase CLU_siso2ibm 150 801
  77. #pragma libcall CLUtilBase CLU_sibm2iso 156 801
  78. #pragma libcall CLUtilBase CLU_MakePath 15C 801
  79. #pragma libcall CLUtilBase CLU_AllocHH 162 0
  80. #pragma libcall CLUtilBase CLU_DelHL 168 801
  81. #pragma libcall CLUtilBase CLU_FreeHH 16E 801
  82. #pragma libcall CLUtilBase CLU_AddHL 174 A9803
  83. #pragma libcall CLUtilBase CLU_CloneHH 17A 801
  84. #pragma libcall CLUtilBase CLU_DumpHH 180 09803
  85. #pragma libcall CLUtilBase CLU_LoadHH 186 801
  86. #pragma libcall CLUtilBase CLU_GetHL 18C 801
  87. #pragma libcall CLUtilBase CLU_GetNextHL 192 801
  88. #pragma libcall CLUtilBase CLU_FindHL 198 9802
  89. #pragma libcall CLUtilBase CLU_FindNextHL 19E 801
  90. #pragma libcall CLUtilBase CLU_GetHLData 1A4 801
  91. #pragma libcall CLUtilBase CLU_GetHLHeader 1AA 801
  92. #pragma libcall CLUtilBase CLU_DelHLName 1B0 9802
  93. #pragma libcall CLUtilBase CLU_SetHLData 1B6 9802
  94. #pragma libcall CLUtilBase CLU_AttemptNamedSemaphore 1BC 0802
  95. #pragma libcall CLUtilBase CLU_OpenAsync 1C2 10803
  96. #pragma libcall CLUtilBase CLU_CloseAsync 1C8 801
  97. #pragma libcall CLUtilBase CLU_ReadAsync 1CE 09803
  98. #pragma libcall CLUtilBase CLU_ReadCharAsync 1D4 801
  99. #pragma libcall CLUtilBase CLU_WriteAsync 1DA 09803
  100. #pragma libcall CLUtilBase CLU_WriteCharAsync 1E0 0802
  101. #pragma libcall CLUtilBase CLU_SeekAsync 1E6 10803
  102. #pragma libcall CLUtilBase CLU_CreatePool 1EC 21003
  103. #pragma libcall CLUtilBase CLU_DeletePool 1F2 801
  104. #pragma libcall CLUtilBase CLU_AllocPooled 1F8 0802
  105. #pragma libcall CLUtilBase CLU_FreePooled 1FE 09803
  106. #pragma libcall CLUtilBase CLU_AllocVecPooled 204 0802
  107. #pragma libcall CLUtilBase CLU_FreeVecPooled 20A 9802
  108. #pragma libcall CLUtilBase CLU_LoadHHfromMem 210 801
  109. #pragma libcall CLUtilBase CLU_CRC16S 216 10803
  110. #pragma libcall CLUtilBase CLU_CRC32S 21c 10803
  111. #pragma libcall CLUtilBase CLU_FlushPort 222 801
  112. #pragma libcall CLUtilBase CLU_StrDupPooled 228 9802
  113. #pragma libcall CLUtilBase CLU_GetHL_Len 22e 801
  114. #pragma libcall CLUtilBase CLU_DumpHHAsync 234 09803
  115. #pragma libcall CLUtilBase CLU_ZCDatestringToDI 23a 9802
  116. #pragma libcall CLUtilBase CLU_ZCDIToDatestring 240 9802
  117. #pragma libcall CLUtilBase CLU_CopyData 246 09803
  118. #pragma libcall CLUtilBase CLU_CopyDataAsync 24c 09803
  119. #pragma libcall CLUtilBase CLU_ExpandTemplateA 252 A09804
  120. #pragma tagcall CLUtilBase CLU_ExpandTemplate 252 A09804
  121. #pragma libcall CLUtilBase CLU_FGetsAsync 258 09803
  122. #pragma libcall CLUtilBase CLU_VFPrintfAsync 25e A9803
  123. #pragma tagcall CLUtilBase CLU_FPrintfAsync 25e A9803
  124. #pragma libcall CLUtilBase CLU_FtellAsync 264 801
  125. #pragma libcall CLUtilBase CLU_MUI_MakeStringLinksA 26a 9802
  126. #pragma tagcall CLUtilBase CLU_MUI_MakeStringLinks 26a 9802
  127. #pragma libcall CLUtilBase CLU_AllocFIB 270 0
  128. #pragma libcall CLUtilBase CLU_FreeFIB 276 801
  129. #pragma libcall CLUtilBase CLU_MatchPattern 27c 9802
  130. #pragma libcall CLUtilBase CLU_NOL_NewA 282 801
  131. #pragma tagcall CLUtilBase CLU_NOL_New 282 801
  132. #pragma libcall CLUtilBase CLU_NOL_Delete 288 801
  133. #pragma libcall CLUtilBase CLU_NOL_Clone 28e 801
  134. #pragma libcall CLUtilBase CLU_NOL_Save 294 9802
  135. #pragma libcall CLUtilBase CLU_NOL_Load 29a 9802
  136. #pragma libcall CLUtilBase CLU_NOL_Info 2a0 9802
  137. #pragma libcall CLUtilBase CLU_NOL_FindEntry 2a6 9802
  138. #pragma libcall CLUtilBase CLU_NOL_DeleteEntry 2ac 801
  139. #pragma libcall CLUtilBase CLU_NOL_AddEntry 2b2 B0A9805
  140. #pragma libcall CLUtilBase CLU_NOL_GetEntryName 2b8 801
  141. #pragma libcall CLUtilBase CLU_NOL_GetEntryData 2be 801
  142. #pragma libcall CLUtilBase CLU_NOL_GetNumEntries 2c4 801
  143. #pragma libcall CLUtilBase CLU_NOL_GetNextEntry 2ca 801
  144. #pragma libcall CLUtilBase CLU_NOL_GetPrevEntry 2d0 801
  145. #pragma libcall CLUtilBase CLU_ScanDir 2d6 BA9804
  146. #pragma libcall CLUtilBase CLU_OpenTempFile 2dc 8002
  147. #pragma libcall CLUtilBase CLU_CloseTempFile 2e2 0802
  148. #pragma libcall CLUtilBase CLU_MakeFileList 2e8 09803
  149. #pragma libcall CLUtilBase CLU_FreeFileList 2ee 801
  150. #pragma libcall CLUtilBase CLU_MUI_SetTextA 2f4 A9803
  151. #pragma tagcall CLUtilBase CLU_MUI_SetText 2f4 A9803
  152. #pragma libcall CLUtilBase CLU_MUI_InsertSingleStringA 2fa A90804
  153. #pragma tagcall CLUtilBase CLU_MUI_InsertSingleString 2fa A90804
  154. #pragma libcall CLUtilBase CLU_AllocVMem 300 1002
  155. #pragma libcall CLUtilBase CLU_FreeVMem 306 801
  156. #pragma libcall CLUtilBase CLU_MUI_RunCommandA 30c A9803
  157. #pragma tagcall CLUtilBase CLU_MUI_RunCommand 30c A9803
  158. #pragma libcall CLUtilBase CLU_NOL_SaveName 312 9802
  159. #pragma libcall CLUtilBase CLU_NOL_LoadName 318 9802
  160. #pragma libcall CLUtilBase CLU_Alert 31e 1002
  161. #pragma libcall CLUtilBase CLU_NOL_GetFirstEntry 324 801
  162. #pragma libcall CLUtilBase CLU_NOL_GetLastEntry 32a 801
  163. #pragma libcall CLUtilBase CLU_NOL_Lock 330 0802
  164. #pragma libcall CLUtilBase CLU_NOL_UnLock 336 801
  165. #pragma libcall CLUtilBase CLU_NOL_SetEntryName 33c 9802
  166. #pragma libcall CLUtilBase CLU_NOL_ChangeCounter 342 0802
  167. #pragma libcall CLUtilBase CLU_NOL_SwapEntries 348 9802
  168. #pragma libcall CLUtilBase CLU_CreatePort 354 0802
  169. #pragma libcall CLUtilBase CLU_DeletePort 35a 801
  170. #pragma libcall CLUtilBase CLU_Exists 360 801
  171. #pragma libcall CLUtilBase CLU_GetScreenPubName 366 9802
  172. #pragma libcall CLUtilBase CLU_ASprintfA 36c A9803
  173. #pragma tagcall CLUtilBase CLU_ASprintf 36c A9803
  174. #pragma libcall CLUtilBase CLU_SkipDot 372 801
  175. #pragma libcall CLUtilBase CLU_UpdateFilename 378 801
  176. #pragma libcall CLUtilBase CLU_CopyFileUpdateFilename 37e A9803
  177. #pragma libcall CLUtilBase CLU_MoveFileUpdateFilename 384 A9803
  178. #pragma libcall CLUtilBase CLU_FGets 38a 09803
  179. #pragma libcall CLUtilBase CLU_SprintfnA 390 A90804
  180. #pragma tagcall CLUtilBase CLU_Sprintfn 390 A90804
  181. #pragma libcall CLUtilBase CLU_NOL_GetEntry 396 0802
  182. #pragma libcall CLUtilBase CLU_RunRexxScript 39c 9802
  183. #pragma libcall CLUtilBase CLU_UnGetCAsync 3a2 801
  184. #pragma libcall CLUtilBase CLU_ReadArgsFromString 3a8 A9803
  185. #pragma libcall CLUtilBase CLU_FreeArgs 3ae 801
  186. #pragma libcall CLUtilBase CLU_OpenLibs 3b4 A9803
  187. #pragma libcall CLUtilBase CLU_CloseLibsA 3ba 8002
  188. #pragma tagcall CLUtilBase CLU_CloseLibs 3ba 8002
  189. #pragma libcall CLUtilBase CLU_TimerBase 3c0 0
  190. #pragma libcall CLUtilBase CLU_BeginTime 3c6 801
  191. #pragma libcall CLUtilBase CLU_EndTime 3cc 801
  192. #pragma libcall CLUtilBase CLU_AvgTime 3d2 0802
  193. #pragma libcall CLUtilBase CLU_FmtTimeval 3d8 9802
  194. #pragma libcall CLUtilBase CLU_Timecvt 3e4 8002
  195. #pragma libcall CLUtilBase CLU_Datecvt 3ea 801
  196. #pragma libcall CLUtilBase CLU_Timestring 3f0 8002
  197. #pragma libcall CLUtilBase CLU_DebugNamedSemaphores 3f6 0
  198. #pragma libcall CLUtilBase CLU_ctype 3fc 0
  199. #pragma libcall CLUtilBase CLU_Copy 402 109804
  200. #pragma libcall CLUtilBase CLU_TestHLValA 408 A9803
  201. #pragma tagcall CLUtilBase CLU_TestHLVal 408 A9803
  202. #pragma libcall CLUtilBase CLU_DelHLNameValA 40e A9803
  203. #pragma tagcall CLUtilBase CLU_DelHLNameVal 40e A9803
  204. #pragma libcall CLUtilBase CLU_CountHLName 414 9802
  205. #pragma libcall CLUtilBase CLU_InsertRotHL 41a 9802
  206. #pragma libcall CLUtilBase CLU_DeleteByPattern 420 9802
  207. #pragma libcall CLUtilBase CLU_DoBackupQueue 426 09803
  208. #pragma libcall CLUtilBase CLU_AddFileSizes 42c 9802
  209. #pragma libcall CLUtilBase CLU_SplitDomainAdr 432 A9803
  210. #pragma libcall CLUtilBase CLU_CalcCRC32File 438 801
  211. #pragma libcall CLUtilBase CLU_time 43e 801
  212. #pragma libcall CLUtilBase CLU_getft 444 801
  213. #pragma libcall CLUtilBase CLU_GetHLDataLong 44a 801
  214. #pragma libcall CLUtilBase CLU_GetHHCharset 450 801
  215. #pragma libcall CLUtilBase CLU_Get_iso2ibm 456 0
  216. #pragma libcall CLUtilBase CLU_Get_ibm2iso 45c 0
  217. #pragma libcall CLUtilBase CLU_biso2ibm 462 0802
  218. #pragma libcall CLUtilBase CLU_CreateProc 468 A9803
  219. #pragma tagcall CLUtilBase CLU_CreateProcTags 468 A9803
  220. #pragma libcall CLUtilBase CLU_AddHLSorted 46e 0A9804
  221. #pragma libcall CLUtilBase CLU_utunpk 474 8002
  222. #pragma libcall CLUtilBase CLU_utpack 47a 801
  223. #pragma libcall CLUtilBase CLU_strnicmp 480 09803
  224. #pragma libcall CLUtilBase CLU_stricmp 486 09803
  225. #pragma libcall CLUtilBase CLU_FmtDateMMDD 48c 8002
  226. #pragma libcall CLUtilBase CLU_bibm2iso 492 0802
  227. #pragma libcall CLUtilBase CLU_CalcCRC16File 498 801
  228. #pragma libcall CLUtilBase CLU_FindInStringTab 49e 9802
  229. #pragma libcall CLUtilBase CLU_DebugSemaphore 4a4 801
  230. #pragma libcall CLUtilBase CLU_GetKeyBase 4aa 0
  231. #pragma libcall CLUtilBase CLU_ResetID 4b0 0
  232. #endif
  233.  
  234. #ifndef _NO_PROTO
  235. /*
  236.  *
  237.  * ANSI prototypes
  238.  *
  239.  */
  240.  
  241. LONG CLU_ShowRequesterA(STRPTR,STRPTR,STRPTR,APTR );
  242. LONG CLU_ShowRequester(STRPTR,STRPTR,STRPTR,...);
  243. struct Library *CLU_OpenLibrary(STRPTR,LONG);
  244. BPTR CLU_OpenFileTimeout(STRPTR,LONG,LONG);
  245. LONG CLU_DeleteDir(STRPTR );
  246. LONG CLU_CopyFile(STRPTR,STRPTR );
  247. LONG CLU_MoveFile(STRPTR,STRPTR );
  248. APTR CLU_CreateFuelGauge(struct Window*,LONG,LONG,LONG,LONG,STRPTR );
  249. void CLU_DeleteFuelGauge(APTR );
  250. void CLU_DrawFuelGauge(APTR ,LONG,LONG);
  251. void CLU_SprintfA(STRPTR,STRPTR,APTR );
  252. void CLU_Sprintf(STRPTR,STRPTR,...);
  253. void CLU_ASprintfA( STRPTR, STRPTR, APTR );
  254. void CLU_ASprintf( STRPTR, STRPTR, ... );
  255. struct Library *CLU_OpenLibraryCode(LONG);
  256. LONG CLU_CRC16(APTR ,LONG);
  257. LONG CLU_CRC32(APTR ,LONG);
  258. STRPTR CLU_rstrchr(STRPTR,char);
  259. void CLU_RefreshFuelGauge(APTR );
  260. struct TextFont *CLU_Get8Font(void);
  261. struct TextAttr *CLU_Get8TextAttr(void);
  262. void CLU_CloseScreenSafe(struct Screen*);
  263. void CLU_SetABPenDrMd(struct RastPort*rp,LONG,LONG,LONG);
  264. BPTR CLU_OpenFileReally(STRPTR );
  265. void CLU_clnl(STRPTR );
  266. LONG CLU_CD(STRPTR );
  267. LONG CLU_Examine(STRPTR,struct FileInfoBlock*);
  268. LONG CLU_GetFileLen(STRPTR );
  269. void CLU_SetWaitPointer(struct Window*);
  270. void CLU_LockWindow(struct Window*);
  271. void CLU_UnlockWindow(struct Window*);
  272. /* v9 */
  273. LONG CLU_ELGetNumEntries(struct List*);
  274. LONG CLU_ELGetEntryNum(struct List*,struct Node*);
  275. struct Node*CLU_ELGetEntry(struct List*,LONG);
  276. void CLU_DrawRLX(struct RastPort *rp,LONG,LONG,LONG);
  277. void CLU_DrawRLY(struct RastPort *rp,LONG,LONG,LONG);
  278. void CLU_strcpylw(STRPTR,STRPTR );
  279. void CLU_strcpyup(STRPTR,STRPTR );
  280. APTR CLU_ObtainNamedSemaphore(STRPTR,LONG);
  281. void CLU_FreeNamedSemaphoreName(STRPTR );
  282. void CLU_FreeNamedSemaphore(APTR );
  283. long CLU_GetNameVal(char *);
  284. ULONG CLU_GetSeqNum(void);
  285. ULONG CLU_GetSeqNumInc(ULONG);
  286. void CLU_MakeNumName(ULONG,ULONG,ULONG,STRPTR );
  287. ULONG CLU_iso2ibm(UBYTE);
  288. ULONG CLU_ibm2iso(UBYTE);
  289. void CLU_siso2ibm(STRPTR );
  290. void CLU_sibm2iso(STRPTR );
  291. LONG CLU_MakePath(STRPTR );
  292. /* v13.2 */
  293. APTR CLU_AttemptNamedSemaphore(STRPTR,LONG);
  294. /* Interne Datenstrukturen */
  295. typedef APTR HH; /* Headerhandle */
  296. typedef APTR HL; /* Headerline */
  297. HH CLU_AllocHH(void);
  298. void CLU_DelHL(HL);
  299. void CLU_FreeHH(HH);
  300. HL CLU_AddHL(HH,STRPTR,STRPTR );
  301. HH CLU_CloneHH(HH);
  302. LONG CLU_DumpHH(HH,BPTR,ULONG);
  303. HH CLU_LoadHH(BPTR);
  304. HL CLU_GetHL(HH);
  305. HL CLU_GetNextHL(HL);
  306. HL CLU_FindHL(HH,STRPTR );
  307. HL CLU_FindNextHL(HL);
  308. STRPTR CLU_GetHLData(HL);
  309. STRPTR CLU_GetHLHeader(HL);
  310. LONG CLU_DelHLName(HH,STRPTR );
  311. void CLU_SetHLData(HL,STRPTR );
  312. /* AsyncIO (V14) */
  313. struct AsyncFile * CLU_OpenAsync(const STRPTR fileName, UBYTE accessMode, LONG bufferSize);
  314. LONG CLU_CloseAsync(struct AsyncFile *file);
  315. LONG CLU_ReadAsync(struct AsyncFile *file, APTR buffer, LONG numBytes);
  316. LONG CLU_ReadCharAsync(struct AsyncFile *file);
  317. LONG CLU_WriteAsync(struct AsyncFile *file, APTR buffer, LONG numBytes);
  318. LONG CLU_WriteCharAsync(struct AsyncFile *file, UBYTE ch);
  319. LONG CLU_SeekAsync(struct AsyncFile *file, LONG position, BYTE mode);
  320. /* V15 */
  321. APTR  CLU_CreatePool( ULONG, ULONG, ULONG );
  322. void CLU_DeletePool( APTR  );
  323. APTR  CLU_AllocPooled( APTR , ULONG );
  324. APTR  CLU_AllocVecPooled( APTR , ULONG );
  325. void CLU_FreePooled( APTR , APTR , ULONG );
  326. void CLU_FreeVecPooled( APTR , APTR  );
  327. /* V16 */
  328. HH CLU_LoadHHfromMem(STRPTR );
  329. /* V17 */
  330. LONG CLU_CRC16S( APTR , LONG, LONG );
  331. LONG CLU_CRC32S( APTR , LONG, LONG );
  332. void CLU_FlushPort( struct MsgPort * );
  333. STRPTR CLU_StrDupPooled( APTR , STRPTR  );
  334. /* V18 */
  335. LONG CLU_GetHL_Len( HH );
  336. int CLU_DumpHHAsync( HH, struct AsyncFile *tofile, ULONG flags );
  337. /* V19 */
  338. LONG CLU_ZCDatestringToDI( STRPTR, struct ZCDateInfo * );
  339. LONG CLU_ZCDIToDatestring( STRPTR, struct ZCDateInfo * );
  340. /* V20 */
  341. LONG CLU_CopyData( BPTR, BPTR, ULONG );
  342. LONG CLU_CopyDataAsync( struct AsyncFile *, struct AsyncFile *, ULONG );
  343. /* V21 */
  344. ULONG CLU_ExpandTemplateA( STRPTR, STRPTR, ULONG, APTR );
  345. ULONG CLU_ExpandTemplate( STRPTR, STRPTR, ULONG, ... );
  346. UBYTE *CLU_FGetsAsync( struct AsyncFile *, UBYTE *, LONG );
  347. LONG CLU_VFPrintfAsync( struct AsyncFile *, STRPTR, APTR  );
  348. LONG CLU_FPrintfAsync( struct AsyncFile *, STRPTR, ... );
  349. /* V22 */
  350. LONG CLU_FtellAsync( struct AsyncFile * );
  351. /* v23 */
  352. void CLU_MUI_MakeStringLinksA( APTR , APTR * );
  353. void CLU_MUI_MakeStringLinks( APTR , ... );
  354. struct FileInfoBlock *CLU_AllocFIB( void );
  355. void CLU_FreeFIB( struct FileInfoBlock * );
  356. BOOL CLU_MatchPattern( STRPTR, STRPTR );
  357. /* Named Object Lists private Handles */
  358. typedef APTR  NOL;
  359. typedef APTR  NOBJ;
  360. /* V24 */
  361. NOL CLU_NOL_NewA( struct TagItem * );
  362. NOL CLU_NOL_New( ... );
  363. void CLU_NOL_Delete( NOL );
  364. LONG CLU_NOL_Info( NOL,  struct NOL_Info * );
  365. void CLU_NOL_DeleteEntry( NOBJ );
  366. NOBJ   CLU_NOL_FindEntry( NOL,  STRPTR  );
  367. NOBJ   CLU_NOL_AddEntry( NOL,  STRPTR , APTR, ULONG, NOBJ  );
  368. STRPTR    CLU_NOL_GetEntryName( NOBJ );
  369. APTR    CLU_NOL_GetEntryData( NOBJ );
  370. LONG   CLU_NOL_GetNumEntries( NOL );
  371. NOBJ   CLU_NOL_GetNextEntry( NOBJ );
  372. NOBJ   CLU_NOL_GetPrevEntry( NOBJ );
  373. NOL   CLU_NOL_Clone( NOL );
  374. LONG   CLU_NOL_Save( NOL, BPTR );
  375. NOL   CLU_NOL_Load( BPTR, struct NOL_Info * );
  376. /* v26 */
  377. LONG CLU_ScanDir( BPTR, STRPTR, BOOL __asm (*)(register __a1 struct FileInfoBlock *, register __a3 APTR ),  APTR );
  378. /* v27 */
  379. BPTR CLU_OpenTempFile( ULONG, STRPTR );
  380. void CLU_CloseTempFile( BPTR, BOOL );
  381. /* v29 */
  382. struct clu_filelist *CLU_MakeFileList( BPTR, STRPTR, ULONG );
  383. void CLU_FreeFileList( struct clu_filelist * );
  384. /* v30 */
  385. void CLU_MUI_SetText( APTR, STRPTR, ... );
  386. void CLU_MUI_SetTextA( APTR, STRPTR, APTR );
  387. /* v31 */
  388. void CLU_MUI_InsertSingleString( APTR, ULONG, STRPTR, ... );
  389. void CLU_MUI_InsertSingleStringA( APTR, ULONG, STRPTR, APTR );
  390. APTR CLU_AllocVMem( ULONG, ULONG );
  391. void CLU_FreeVMem( APTR );
  392. /* v32 */
  393. LONG CLU_MUI_RunCommandA( APTR, STRPTR, APTR );
  394. LONG CLU_MUI_RunCommand( APTR, STRPTR, ... );
  395. /* v33 */
  396. LONG   CLU_NOL_SaveName( NOL,  STRPTR  );
  397. NOL   CLU_NOL_LoadName( STRPTR, struct NOL_Info * );
  398. /* v35 */
  399. void CLU_Alert( UBYTE, UWORD );
  400. NOBJ CLU_NOL_GetFirstEntry( NOL );
  401. NOBJ CLU_NOL_GetLastEntry( NOL );
  402. ULONG CLU_NOL_ChangeCounter( NOL, BOOL );
  403. void CLU_NOL_Lock( NOL, BOOL );
  404. void CLU_NOL_UnLock( NOL );
  405. void CLU_NOL_SwapEntries( NOBJ, NOBJ );
  406. BOOL CLU_NOL_SetEntryName( NOBJ, STRPTR );
  407. void CLU_ELSwapNodes( struct Node *, struct Node * );
  408. /* v36 */
  409. struct MsgPort * CLU_CreatePort( STRPTR, LONG );
  410. void CLU_DeletePort( struct MsgPort * );
  411. /* v37 */
  412. BOOL CLU_Exists( STRPTR filename );
  413. /* v38 */
  414. BOOL CLU_GetScreenPubName( struct Screen *scr, STRPTR namebuffer );
  415. /* v39 */
  416. STRPTR CLU_SkipDot( STRPTR string );
  417. void CLU_UpdateFilename( STRPTR filenamearray );
  418. long CLU_CopyFileUpdateFilename( STRPTR fromname, STRPTR toname, STRPTR newnamearray );
  419. long CLU_MoveFileUpdateFilename( STRPTR fromname, STRPTR toname, STRPTR newnamearray );
  420. APTR CLU_FGets( BPTR, APTR, ULONG );
  421. /* v40 */
  422. void CLU_SprintfnA( STRPTR buffer, ULONG maxlen, STRPTR formatstring, APTR args );
  423. void CLU_Sprintfn( STRPTR buffer, ULONG maxlen, STRPTR formatstring, ... );
  424. /* v41 */
  425. NOBJ *CLU_NOL_GetEntry( NOL *nol, ULONG index );
  426. /* v42 */
  427. int CLU_RunRexxScript( STRPTR filename, STRPTR defaultport );
  428. void CLU_UnGetCAsync( struct AsyncFile *file );
  429. /* V43 */
  430. struct RDArgs * CLU_ReadArgsFromString( STRPTR string, STRPTR template, APTR args );
  431. void CLU_FreeArgs( struct RDArgs *rda );
  432. /* V45 */
  433. void CLU_OpenLibs( struct DosLibrary **DOSBase, struct IntuitionBase **IntuitionBase, struct Library **UtilityBase );
  434. void CLU_CloseLibsA( ULONG num, APTR *libbasearray );
  435. void CLU_CloseLibs( ULONG num, ... );
  436. struct Library * CLU_TimerBase( void );
  437. void CLU_BeginTime( struct timeval *tv );
  438. void CLU_EndTime( struct timeval *tv );
  439. void CLU_AvgTime( struct timeval *tv, ULONG number );
  440. STRPTR CLU_FmtTimeval( struct timeval *tv, STRPTR buffer );
  441. /* V45.1 */
  442. void CLU_Timecvt( time_t t, struct DateStamp *to );
  443. time_t CLU_Datecvt( struct DateStamp *datestamp );
  444. STRPTR CLU_Timestring( time_t t, STRPTR buffer );
  445. /* V45.2 */
  446. void CLU_DebugNamedSemaphores( void );
  447. APTR CLU_ctype( void );
  448. LONG CLU_Copy( APTR fromobj, APTR toobj, LONG size, ULONG flags );
  449. /* V48 */
  450. ULONG CLU_TestHLValA( HH hlist, STRPTR header, STRPTR *valarray );
  451. ULONG CLU_TestHLVal( HH hlist, STRPTR header, ... );
  452. ULONG CLU_DelHLNameValA( HH hlist, STRPTR header, STRPTR *valarray );
  453. ULONG CLU_DelHLNameVal( HH hlist, STRPTR header, ... );
  454. ULONG CLU_CountHLName( HH hlist, STRPTR header );
  455. ULONG CLU_InsertRotHL( HL hl, STRPTR what );
  456. void CLU_DeleteByPattern( STRPTR dirname, STRPTR pattern );
  457. LONG CLU_DoBackupQueue( STRPTR sourcefile, STRPTR destfile, ULONG gennum );
  458. LONG CLU_AddFileSizes( STRPTR path, STRPTR pattern );
  459. LONG CLU_SplitDomainAdr( STRPTR domainadr, STRPTR adrbuf, STRPTR realnamebuf );
  460. ULONG CLU_CalcCRC32File( STRPTR filename );
  461. /* V49 */
  462. time_t CLU_time( time_t *write );
  463. LONG CLU_getft( STRPTR filename );
  464. LONG CLU_GetHLDataLong( HL hl );
  465. LONG CLU_GetHHCharset( HH hh );
  466. STRPTR CLU_Get_iso2ibm( void );
  467. STRPTR CLU_Get_ibm2iso( void );
  468. void CLU_biso2ibm( APTR block, ULONG len );
  469. struct Process *CLU_CreateProc( APTR entry, struct CLU_RegisterInfo *regs, struct TagItem *tags );
  470. struct Process *CLU_CreateProcTags( APTR entry, struct CLU_RegisterInfo *regs, ... );
  471. /* V51 */
  472. HL CLU_AddHLSorted( HH, STRPTR header, STRPTR data, LONG insertafter );
  473. /* V52 */
  474. void CLU_utunpk( time_t t, char *destarray );
  475. time_t CLU_utpack( char *array );
  476. int CLU_strnicmp( char *s1, char *s2, int len );
  477. int CLU_stricmp( char *s1, char *s2 );
  478. void CLU_FmtDateMMDD( time_t t, char *deststring );
  479. void CLU_bibm2iso( STRPTR block, LONG blocklen );
  480. /* V54 */
  481. ULONG CLU_CalcCRC16File( STRPTR filename );
  482. /* V55 */
  483. int CLU_FindInStringTab( STRPTR *strtab, STRPTR str );
  484. /* V58 */
  485. void CLU_DebugSemaphore( struct SignalSemaphore *sem );
  486. /* V62 */
  487. APTR CLU_GetKeyBase( void );
  488. void CLU_ResetID( void );
  489. #endif
  490.  
  491. extern struct Library *CLUtilBase;
  492.  
  493. #define CLUTIL_NAME "clutil.library"
  494. #define CLUTIL_VER 62
  495. #define CLU_VERSION 62
  496.  
  497.  
  498. /*
  499.  *
  500.  * Codes fuer CLU_OpenLibraryCode()
  501.  *
  502.  */
  503.  
  504. #define CLULC_CLPREFS 0
  505. #define CLULC_CLBOARD 1
  506. #define CLULC_CLSYSTEM 2
  507. #define CLULC_CLLOG 3
  508. #define CLULC_CLMID 4                   /* clmidb.library; v10 */
  509. #define CLULC_CLMACRO 5                 /* clmacro.library; v10 */
  510. #define CLULC_CL_PREFS 6                /* 5.x cl_prefs.library */
  511. #define CLULC_CL_LOG 7                  /* 5.x cl_log.library */
  512. #define CLULC_CL_MAIL 8                 /* 5.x cl_mail.library */
  513. #define CLULC_CL_MESSAGE 9              /* OBSOLETE: 5.x cl_message.library */
  514. #define CLULC_CL_MAIL_JANUS 10          /* 5.x cl_mail.library */
  515. #define CLULC_CL_MAIL_Z38 11            /* 5.x cl_mail.library */
  516. #define CLULC_CL_MAIL_RFC 12               /* 5.x cl_mail.library */
  517. #define CLULC_CL_ROUTE 13               /* 5.x cl_route.library */
  518. #define CLULC_CL_BOARD 14               /* 5.x cl_board.library */
  519. #define CLULC_CL_LINK 15                /* 5.x cl_link.library */
  520. #define CLULC_CL_ANSI 16                /* 5.x cl_ansi.library */
  521. #define CLULC_MUIMASTER 17              /* muimaster.library */
  522. #define CLULC_CL_MUI 18                 /* 5.x cl_mui.library */
  523. #define CLULC_CL_USER 19                /* 5.x cl_user.library */
  524. #define CLULC_CL_PORT 20                /* 4.x cl-port.library */
  525. #define CLULC_CL_MM 21                  /* 5.x cl_mailmaster.library */
  526. #define CLULC_CL_XFER 22                /* 5.x cl_xfer.library */
  527. #define CLULC_CL_TEXT 23                /* 5.x cl_text.library */
  528. #define CLULC_CL_MSG 24                    /* 5.x cl_msg.library */
  529. #define CLULC_CL_MPROC 25                /* 5.x cl_mproc.library */
  530. #define CLULC_CL_ACCOUNTS 26            /* 5.x cl_accounts.library */
  531. #define CLULC_CL_IPC 27                    /* 5.x cl_ipc.library */
  532. #define CLULC_CL_SHELL 28                /* 5.x cl_shell.library */
  533. #define CLULC_CLONLINE 29                /* 5.x cl_online.library */
  534.  
  535. /*
  536.  *
  537.  * Help me ;-)
  538.  *
  539.  */
  540.  
  541. #define rstrchr strrchr
  542. //define sprintf CLU_Sprintf
  543. //extern void __stdargs __clsprintf( STRPTR to, STRPTR fmt, ... );
  544. //define sprintf __clsprintf
  545.  
  546. #define asprintf CLU_ASprintf
  547. #define clnl CLU_clnl
  548. #define CreatePort CLU_CreatePort
  549. #define DeletePort CLU_DeletePort
  550.  
  551. /*
  552.  *
  553.  * asyncio 
  554.  *
  555.  */
  556.  
  557. #define ASMODE_READ   0  /* read an existing file                             */
  558. #define ASMODE_WRITE  1  /* create a new file, delete existing file if needed */
  559. #define ASMODE_APPEND 2  /* append to end of existing file, or create new     */
  560.  
  561. /* obsolete; use standard OFFSET_xxx instead */
  562.  
  563. #define ASMODE_START   -1   /* relative to start of file         */
  564. #define ASMODE_CURRENT  0   /* relative to current file position */
  565. #define ASMODE_END      1   /* relative to end of file         */
  566.  
  567. typedef struct AsyncFile {
  568.  APTR dummy;
  569. } AsyncFile;
  570.  
  571. /*
  572.  *
  573.  * Date-Info
  574.  *
  575.  */
  576.  
  577. typedef struct ZCDateInfo
  578. {
  579.         time_t  t;              /* GMT */
  580.         UBYTE   zoneid; /* immer 0 */
  581.         UBYTE   flags;
  582.         SHORT   offset; /* relativ zur GMT in Minuten */
  583. } ZCDateInfo;
  584.  
  585. #define ZCDIF_DST 1     /* Daylightsavingtime (Sommerzeit) */
  586.  
  587.  
  588. /*
  589.  *    Named Object Lists (NOL)
  590.  */
  591.  
  592. /*
  593.  *   CLU_NOL_Info()
  594.  */
  595.  
  596. typedef struct NOL_Info {
  597.         ULONG nol_info_version; /* set to NOL_INFO_VERSION */
  598.         ULONG nol_entrysize;    /* per entry size */
  599.         ULONG nol_num_entries;  /* number of entries */
  600. } NOL_Info;
  601. #define NOL_INFO_VERSION 1
  602.  
  603. /*
  604.  *  InsertModes and flags for CLU_NOL_AddEntry (V35)
  605.  */
  606.  
  607. #define NOLIM_ADDHEAD 0
  608. #define NOLIM_ADDTAIL 1
  609. #define NOLIM_INSERT_BEFORE 2
  610. #define NOLIM_INSERT_AFTER 3
  611. #define NOLIM_INSERT_SORTED 4
  612.  
  613. #define NOLIMF_OVERWRITE (1<<16)        /* OR this into one of the InsertModes */
  614.  
  615. /*
  616.  *   Tags for CLU_NOL_New() 
  617.  */
  618.  
  619. #define NOLT_IGNORE     (TAG_USER+1)
  620. #define NOLT_ENTRYSIZE (NOLT_IGNORE+1)  /* NOL entry size; default 0 */
  621. #define NOLT_IGNORECASE (NOLT_IGNORE+2) /* Ignore name case; default FALSE */
  622.  
  623.  
  624. /*
  625.  *
  626.  * CLU_MakeFileList() stuff 
  627.  *
  628.  */
  629.  
  630. #define CLUMFLF_NODIRS 1
  631. #define CLUMFLF_NOFILES 2
  632. #define CLUMFLF_NOINFOS 4
  633. #define CLUMFLF_SORT 8
  634.  
  635. typedef struct clu_fib
  636. {
  637.         struct clu_fib *next;
  638.         struct FileInfoBlock fib;
  639. } clu_fib;
  640.  
  641. typedef struct clu_filelist
  642. {
  643.         struct clu_fib *entries;        /* linked list of entries found */
  644.         ULONG numentries;                       /* number of entries found */
  645.         ULONG flags;                            /* flags used for scanning */
  646.         APTR sexandfreebeer;            /* PRIVATE, do not touch! */
  647. } clu_filelist;
  648.  
  649.  
  650. /*
  651.  *
  652.  * VMem support
  653.  *
  654.  */
  655.  
  656. #define MEMF_VMEM (1L<<24) /* private flag for pool functions only! */
  657. #define MEMF_PROTECT (1L<<25) /* protect memory for this task only */
  658.  
  659.  
  660. /*
  661.  *
  662.  *  MAKE_ID -Makro for MUI and cl_prefs.library
  663.  *
  664.  *
  665.  */
  666.  
  667. #ifndef MAKE_ID
  668. #define MAKE_ID(a,b,c,d) ((ULONG) (a)<<24 | (ULONG) (b)<<16 | (ULONG) (c)<<8 | (ULONG) (d))
  669. #endif
  670.  
  671. /*
  672.  *
  673.  *    Flags for CLU_Copy()
  674.  *
  675.  */
  676.  
  677. #define CLUCOPY_SOURCE_NAME     (1L<<0)    /* Source is Name instead of Filehandle */
  678. #define CLUCOPY_SOURCE_ASYNC     (1L<<1)    /* Source really is AsyncFile */
  679. #define CLUCOPY_DEST_NAME         (1L<<2)    /* Dest is Name instead of Filehandle */
  680. #define CLUCOPY_DEST_ASYNC         (1L<<3)    /* Dest really is AsyncFile */
  681. #define CLUCOPY_DEST_APPEND        (1L<<4)    /* Append to the end of dest */
  682.  
  683. #define CLUCOPY_ERR_OPENIN        (-1)
  684. #define CLUCOPY_ERR_OPENOUT        (-2)
  685. #define CLUCOPY_ERR_WRITE        (-3)
  686.  
  687. /*
  688.  *
  689.  *  Register setup structure for CLU_CreateProc()
  690.  *
  691.  */
  692.  
  693. struct CLU_RegisterInfo {
  694.     ULONG d0, d1, d2, d3, d4, d5, d6, d7;
  695.     ULONG a0, a1, a4, a5, a6;
  696. };
  697.  
  698. #endif
  699.